package Crawler;

import org.apache.commons.io.FileUtils;
import redis.clients.jedis.Jedis;

import java.io.*;
import java.util.*;

/**
 * java调用Redis的方法
 * 我们应该先将uid与关注分开然后存入还是先存入再将他们分开呢？
 */

public class RedisTest {

    public static void main(String[] args) throws IOException {
        //连接本地的 Redis 服务
        Jedis jedis = new Jedis("222.27.227.115", 6379);
        System.out.println("SUCCEED!");

//        // 存储时发现字符串作为存储不是我们要的列表形式
//        //设置 redis 字符串数据
//        jedis.set("w:runoobkey", "www.runoob.com");
//        jedis.set("w:runoobkey", "???????");
//        // 获取存储的数据并输出
//        System.out.println("redis 存储的字符串为: " + jedis.get("w:runoobkey"));

        // 存储数据到列表中
//        jedis.lpush("w:site-list", "Runoob");
//        jedis.lpush("w:site-list", "Google");
//        jedis.lpush("w:site-list", "Taobao");

        // 从文件中读取数据然后存入redis中
        String fileName = "C:/Users/TING/code/java code/Weibo/RedisDemo.txt";
        ArrayList lineList = new ArrayList();
        lineList = getUidList(fileName);
        for (int i = 0; i < lineList.size(); i++) {
            String line = lineList.get(i).toString();
            jedis.lpush("w:demo", line);
            System.out.println("已成功将     " + line + "    加入队列");
        }


//        // 获取存储的数据并输出
//        // jedis.llen获取长度 -1表示取得所有
//        List<String> list = jedis.lrange("w:demo",0,-1);
//        for (int i = 0; i < list.size(); i++) {
//            System.out.println("列表项为: " + list.get(i));
//        }
//
//        // 获取数据库名称并输出
//        Set<String> keys = jedis.keys("*");
//        Iterator<String> it = keys.iterator();
//        while (it.hasNext()) {
//            String key = it.next();
//            System.out.println(key);
//        }

//        // 从Redis中读取并出队
//        // 用队列是一次全部取出，需要逐条取出-使用-销毁
//        System.out.println(jedis.lrange("w:demo", 0, -1));
//        List<String> list = jedis.lrange("w:demo", 0, -1);
//        for (int i = 0; i < list.size(); i++) {
//            System.out.println("当前使用了: " + list.get(i));
//            jedis.lrem("w:demo",1,list.get(i));
//            System.out.println("现将其出队。");
//        }
//        System.out.println(jedis.lrange("w:demo", 0, -1));

        // 一次一取一删
        List<String> list = jedis.lrange("w:demo", 0, -1);
        for (int i = 0; i < list.size(); i++) {
            System.out.println("当前使用了: " + list.get(i));
            jedis.lpop("w:demo");
            System.out.println("现出队：");
        }



    }

    public static ArrayList getUidList(String fileName) {
        ArrayList uidList = new ArrayList();
        try {
            for (String line : FileUtils.readLines(new File(fileName))) {
                uidList.add(line);
            }
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return uidList;
    }
}
